package br.com.rsrpp.application.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import br.com.rsrpp.domain.model.Categoria;
import br.com.rsrpp.domain.model.PS;
import br.com.rsrpp.domain.model.Status;
import br.com.rsrpp.domain.model.UP;
import br.com.rsrpp.domain.model.Usuario;
import br.com.rsrpp.domain.service.PSService;
import br.com.rsrpp.domain.service.UserService;

@Controller
public class TestController {

	//Remover depois dos testes de UP
	@Autowired
	private PSService PSService;
   
	@Autowired
	private UserService userService;
	
	
	//Remover Business depois de teste UP
    @RequestMapping(value = "/testar")
    public String TesteUP(	@RequestParam(value="idusuario") int id_usuario,
    						@RequestParam(value="idps") int id_ps,
    						@RequestParam(value="owner") int owner,
    						@RequestParam(value="status") int id_status) {
        Usuario user = new Usuario();
        PS ps = new PS();
    	if (id_ps != 77)
    	{
    		ps = PSService.buscarPSById(id_ps);
    		//ps = listPS.get(0);
    	}
    	else {
    		SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        	Date dt_cadastro = new Date();
    		df.format(dt_cadastro);
        	
        	Categoria categoria = new Categoria("Categoria UP");
        	Status status = new Status("Status UP");
        	//ps = new PS("Novo PS", "descrevendo a rebimboca", "latitude", "longitude", dt_cadastro, dt_cadastro, "url_img", "url_video", 123456, categoria, status);
        	//Removendo para teste UP... persistindo PS só lááááa em baixo.
        	PSService.cadastrarTeste(ps);
    	}
    	
    	if (id_usuario != 77) {
    		user = userService.buscarUserById(id_usuario);	
    	} else {
    		
    	}
    	
    	boolean bowner = true;
    	if(owner == 0)
    	{
    		bowner = false;
    	} 
    	
    	//Teste UP utilizando PS como "mandante"
		//List<PS> listPS = PSService.buscarPSById(id_ps);
		//ps = listPS.get(0);
    	
    	UP up = new UP(user, ps, bowner, id_status);
    	
		//ps.getListUP().add(up);
		//PSService.cadastrarTeste(ps);
    	
    	
    	//Teste UP utilizando UP como "mandante". FUNCIONA !!!!!!!
    	userService.NovoUP(up);
    		
    	return "teste";
    }
    
    @RequestMapping(value = "/carregarTeste")
    public String Teste1() {
        return "teste";
    }
    
    @RequestMapping(value = "/testar3")
    public String Teste3(	@RequestParam(value="uf") int id_uf,
    						@RequestParam(value="cidade") int id_cidade) {
     int a = id_uf;
     int b = id_cidade;
     
     int c = a + b;
     
     System.out.println(c);
    	
    	return "x";   
    }
   
    
    
    @RequestMapping(value = "/servletupload")
    public String Teste()	{
    	
    	return "teste";
    	
    }
}
